# -*- coding: utf-8 -*-
"""
@Time    : 2025/2/12 18:56 
@Author  : ZhangShenao 
@File    : 5.seed.py 
@Desc    : 借助Seed参数,实现可重现生成

seed是一个实验中的参数
如果设置了seed,OpenAI会尽最大可能实现确定性采样
如果多次调用都指定了相同的seed和prompt及调用参数,那么每次生成的结果应该是相同的
该机制并不确保生成相同的内容
"""

import os

import dotenv
from openai import OpenAI

# 创建OpenAI客户端
dotenv.load_dotenv()
client = OpenAI(base_url=os.getenv("OPENAI_API_BASE"))

# 调用多次Chat Completion,每次都采用相同的seed、prompt和参数
for i in range(0, 3):
    response = client.chat.completions.create(
        model="gpt-4o-mini",
        messages=[
            {
                "role": "user",
                "content": "给我写一首关于冬天的诗",
            },
        ],
        seed=99,  # 利用seed实现可重现输出
        max_tokens=30,
        temperature=0.2,
    )
    print(f"第 {i + 1} 次生成结果:\n{response.choices[0].message.content}")
